executable("llvm-reduce") {
  deps = [
    "//llvm/lib/CodeGen/MIRParser",
    "//llvm/lib/IR",
    "//llvm/lib/IRReader",
    "//llvm/lib/Passes",
    "//llvm/lib/Support",
    "//llvm/lib/Target",
    "//llvm/lib/Target:TargetsToBuild",
    "//llvm/lib/TargetParser",
    "//llvm/lib/Transforms/IPO",
    "//llvm/lib/Transforms/Utils",
  ]
  include_dirs = [ "." ]
  sources = [
    "DeltaManager.cpp",
    "ReducerWorkItem.cpp",
    "TestRunner.cpp",
    "deltas/Delta.cpp",
    "deltas/ReduceAliases.cpp",
    "deltas/ReduceArguments.cpp",
    "deltas/ReduceAttributes.cpp",
    "deltas/ReduceBasicBlocks.cpp",
    "deltas/ReduceDIMetadata.cpp",
    "deltas/ReduceFunctionBodies.cpp",
    "deltas/ReduceFunctions.cpp",
    "deltas/ReduceGlobalObjects.cpp",
    "deltas/ReduceGlobalValues.cpp",
    "deltas/ReduceGlobalVarInitializers.cpp",
    "deltas/ReduceGlobalVars.cpp",
    "deltas/ReduceIRReferences.cpp",
    "deltas/ReduceInstructionFlags.cpp",
    "deltas/ReduceInstructionFlagsMIR.cpp",
    "deltas/ReduceInstructions.cpp",
    "deltas/ReduceInstructionsMIR.cpp",
    "deltas/ReduceInvokes.cpp",
    "deltas/ReduceMemoryOperations.cpp",
    "deltas/ReduceMetadata.cpp",
    "deltas/ReduceModuleData.cpp",
    "deltas/ReduceOpcodes.cpp",
    "deltas/ReduceOperandBundles.cpp",
    "deltas/ReduceOperands.cpp",
    "deltas/ReduceOperandsSkip.cpp",
    "deltas/ReduceOperandsToArgs.cpp",
    "deltas/ReduceRegisterDefs.cpp",
    "deltas/ReduceRegisterMasks.cpp",
    "deltas/ReduceRegisterUses.cpp",
    "deltas/ReduceSpecialGlobals.cpp",
    "deltas/ReduceUsingSimplifyCFG.cpp",
    "deltas/ReduceVirtualRegisters.cpp",
    "deltas/RunIRPasses.cpp",
    "deltas/SimplifyInstructions.cpp",
    "deltas/StripDebugInfo.cpp",
    "deltas/Utils.cpp",
    "llvm-reduce.cpp",
  ]
}
